package com.ccys.db.vo.app.doctorList;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.util.List;

/**
 * @program: WhiteCoat
 * @description: 病人查看医生详细信息返回数据组装Vo
 * @author: ZhangJingCan
 * @create: 2024-01-19 13:34
 **/

@Data
public class GetDoctorDetailMakeVo {

    /**
     * 医生id
     */
    private String id;

    /**
     * 医生名称
     */
    @JsonProperty("first_name")
    private String firstName;

    /**
     * 医生姓
     */
    @JsonProperty("last_name")
    private String lastName;

    /**
     * 医生许可证编号
     */
    @JsonProperty("license_no")
    private String licenseNo;

    /**
     * 医生性别字符串
     */
    private String gender;

    /**
     * 医生邮箱
     */
    private String email;

    /**
     * 总问诊数量 - 当前医生的booking表的未删除数据的count
     */
    @JsonProperty("total_consulation")
    private Integer totalConsulation;

    /**
     * 专业-医生本表
     */
    private String professional;

    /**
     * 居住国家 - 对方返回的id，并且是integer类型
     */
    @JsonProperty("country_of_residence")
    private String countryOfResidence;

    /**
     * 工作年限
     * 通过doctor表的md_yop_id 关联 tbl_doctor_year_of_practice 找name
     */
    @JsonProperty("years_of_practice")
    private String yearsOfPractice;

    /**
     * 医生照片
     */
    @JsonProperty("profile_photo")
    private String profilePhoto;

    /**
     * 查询当前病人和医生的booking数，status in (-2, -3, -4, -5, 4, 5, 6, 7, 99),doctor_is_completed=1
     * 默认设置为0 - sql中有判断是否有memberId - 有才查询，没有不会走那个sql
     */
    @JsonProperty("no_time_of_visit")
    private Integer noTimeOfVisit = 0;

    /**
     * 等待时间，对方返回空字符串 todo  系统参数Time_Out_Cosulation的值乘以当前queue_no乘以60
     * todo 前端查看了没有用 - 这里直接返回空字符串就行
     */
    @JsonProperty("time_waiting")
    private String timeWaiting = "";

    /**
     * 医生的获奖
     * tbl_doctor_awards表数据
     */
    private List<DoctorAwardsMakeVo> awards;

    /**
     * 医生的教育经历
     * tbl_doctor_education表数据
     */
    private List<DoctorEducationMakeVo> educations;

    /**
     * 医生的证书
     * 猜测tbl_doctor_certifications表数据
     */
    private List<DoctorCertificationsMakeVo> certifications;

    /**
     * 医生的语言集合
     * tbl_doctor_speak_language 中间表去找tbl_language
     */
    private List<DoctorLanguagesMakeVo> languages;

    /**
     * 保留返回false
     */
    @JsonProperty("have_one_doctor")
    private Boolean haveOneDoctor = false;

    /**
     * 在线状态
     * 医生本表
     */
    @JsonProperty("online_status")
    private Boolean onlineStatus;

    /**
     * 医生公司名称
     * 通过医生本表的company_id关联tbl_company拿到名称
     */
    @JsonProperty("company_name")
    private String companyName;

    /**
     * 是否允许预约 查询医生预约设置和医生当前在线状态合并判断
     * tbl_doctor表的utilise_wcappt和online_status两个字段结合判断
     */
    @JsonProperty("is_allow_booking")
    private Boolean isAllowBooking;

    /**
     * 是否正在咨询或者预约 参考函数fn_Check_Doctor_On_Consult_Appointment
     */
    @JsonProperty("is_on_consult_appointment")
    private Boolean isOnConsultAppointment;

    /**
     * 医生类型
     * 本表的doctor_type
     */
    @JsonProperty("doctor_type")
    private String doctorType;

    /**
     * 是否可用企业福利 保留返回true
     */
    @JsonProperty("is_corporate_benefit_applied")
    private Boolean isCorporateBenefitApplied = true;

}
